<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Cocoa (API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Cocoa_(API)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Cocoa_API rootpage-Cocoa_API skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Cocoa (API)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above summary">Cocoa</th></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="Apple_Inc." title="Apple Inc.">Apple Inc.</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="Objective-C" title="Objective-C">Objective-C</a>, <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="MacOS" title="MacOS">macOS</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="Software_framework" title="Software framework">Software framework</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="Proprietary_software" title="Proprietary software">Proprietary</a><br>with some open source components</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="http://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html">Apple Developer</a></span></td></tr></tbody></table>
<p><b>Cocoa</b> is <a href="Apple_Inc." title="Apple Inc.">Apple</a>'s native <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented</a> <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interface</a> (API) for its <a href="Desktop_computer" title="Desktop computer">desktop</a> <a href="Operating_system" title="Operating system">operating system</a> <a href="MacOS" title="MacOS">macOS</a>.
</p><p>Cocoa consists of the <a href="Foundation_Kit" title="Foundation Kit">Foundation Kit</a>, <a href="Application_Kit" class="mw-redirect" title="Application Kit">Application Kit</a>, and <a href="Core_Data" title="Core Data">Core Data</a> frameworks, as included by the <code>Cocoa.h</code> header file, and the libraries and frameworks included by those, such as the C standard library and the Objective-C runtime.<sup id="cite_ref-apple1_1-0" class="reference"><a href="#cite_note-apple1-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Cocoa applications are typically developed using the development tools provided by Apple, specifically <a href="Xcode" title="Xcode">Xcode</a> (formerly <a href="Project_Builder" title="Project Builder">Project Builder</a>) and <a href="Interface_Builder" title="Interface Builder">Interface Builder</a> (now part of Xcode), using the <a href="Programming_language" title="Programming language">programming languages</a> <a href="Objective-C" title="Objective-C">Objective-C</a> or <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a>. However, the Cocoa programming environment can be accessed using other tools. It is also possible to write Objective-C Cocoa programs in a simple <a href="Text_editor" title="Text editor">text editor</a> and build it manually with <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC) or <a href="Clang" title="Clang">Clang</a> from the command line or from a <a href="Make_(software)" title="Make (software)">makefile</a>.
</p><p>For <a href="End_user" title="End user">end users</a>, Cocoa <a href="Application_software" title="Application software">applications</a> are those written using the Cocoa programming environment. Such applications usually have a familiar look and feel, since the Cocoa programming environment provides a lot of common <a href="User_interface" title="User interface">UI elements</a> (such as buttons, scroll bars, etc.), and automates many aspects of an application to comply with Apple's <a href="Human_interface_guidelines" title="Human interface guidelines">human interface guidelines</a>.
</p><p>For <a href="IOS" title="IOS">iOS</a>, <a href="IPadOS" title="IPadOS">iPadOS</a>, <a href="TvOS" title="TvOS">tvOS</a>, and <a href="WatchOS" title="WatchOS">watchOS</a>, APIs similar to Application Kit, named <a href="UIKit" title="UIKit">UIKit</a> and WatchKit, are available; they include <a href="Gesture_recognition" title="Gesture recognition">gesture recognition</a>, <a href="Animation" title="Animation">animation</a>, and a different set of <a href="Graphical_control_element" class="mw-redirect" title="Graphical control element">graphical control elements</a> that are designed to accommodate the specific platforms they target. Foundation Kit and Core Data are also available in those operating systems. It is used in <a href="Application_software" title="Application software">applications</a> for Apple devices such as the <a href="IPhone" title="IPhone">iPhone</a>, the <a href="IPod_Touch" title="IPod Touch">iPod Touch</a>, the <a href="IPad" title="IPad">iPad</a>, the <a href="Apple_TV" title="Apple TV">Apple TV</a>, and the <a href="Apple_Watch" title="Apple Watch">Apple Watch</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Further information: <a href="History_of_macOS" class="mw-redirect" title="History of macOS">History of macOS</a></div>
<p>Cocoa continues the lineage of several <a href="Software_framework" title="Software framework">software frameworks</a> (mainly the <i>App Kit</i> and <i>Foundation Kit</i>) from the <a href="NeXTSTEP" title="NeXTSTEP">NeXTSTEP</a> and <a href="OpenStep" title="OpenStep">OpenStep</a> programming environments developed by <a href="NeXT" title="NeXT">NeXT</a> in the 1980s and 1990s. Apple acquired NeXT in December 1996, and subsequently went to work on the <a href="Rhapsody_(operating_system)" title="Rhapsody (operating system)">Rhapsody</a> operating system that was to be the direct successor of <a href="OPENSTEP" class="mw-redirect" title="OPENSTEP">OPENSTEP</a>. It was to have had an emulation base for <a href="Classic_Mac_OS" title="Classic Mac OS">classic Mac OS</a> applications, named <i>Blue Box</i>. The OpenStep base of libraries and binary support was termed <i>Yellow Box</i>. Rhapsody evolved into Mac OS X, and the Yellow Box became Cocoa. Thus, Cocoa classes begin with the letters <i>NS</i>, such as NSString or NSArray. These stand for the original proprietary term for the OpenStep framework, NeXTSTEP.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Much of the work that went into developing OpenStep was applied to developing Mac OS X, Cocoa being the most visible part. However, differences exist. For example, NeXTSTEP and OpenStep used <a href="Display_PostScript" title="Display PostScript">Display PostScript</a> for on-screen display of text and graphics, while Cocoa depends on Apple's <a href="Quartz_(graphics_layer)" title="Quartz (graphics layer)">Quartz</a> (which uses the <a href="Portable_Document_Format" class="mw-redirect" title="Portable Document Format">Portable Document Format</a> (PDF) imaging model, but not its underlying technology). Cocoa also has a level of Internet support, including the NSURL and <a href="WebKit" title="WebKit">WebKit</a> <a href="HTML" title="HTML">HTML</a> classes, and others, while OpenStep had only rudimentary support for managed network connections via NSFileHandle classes and <a href="Berkeley_sockets" title="Berkeley sockets">Berkeley sockets</a>.
</p><p>The API toolbox was originally called “Yellow Box” and was renamed to Cocoa - a name that had been already trademarked by Apple. Apple's <i>Cocoa</i> trademark had originated as the name of a multimedia project design application for children. The name was intended to evoke "Java for kids", as it ran embedded in web pages.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> The original "Cocoa" program was discontinued following the return of <a href="Steve_Jobs" title="Steve Jobs">Steve Jobs</a> to Apple. At the time, Java was a big focus area for the company, so “Cocoa” was used as the new name for “Yellow Box” because, in addition to the native Objective-C usage, it could also be accessed from Java via a bridging layer.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Even though Apple discontinued support for the Cocoa Java bridge, the name continued and was even used for the <a href="Cocoa_Touch" class="mw-redirect" title="Cocoa Touch">Cocoa Touch</a> API.
</p>
<div class="mw-heading mw-heading2"><h2 id="Memory_management">Memory management</h2></div>
<p>One feature of the Cocoa environment is its facility for managing dynamically allocated memory. <a href="Foundation_Kit" title="Foundation Kit">Foundation Kit</a>'s NSObject class, from which most classes, both vendor and user, are derived, implements a <a href="Reference_counting" title="Reference counting">reference counting</a> scheme for memory management. Objects that derive from the NSObject root class respond to a <code>retain</code> and a <code>release</code> message, and keep a retain count. A method titled <code>retainCount</code> exists, but contrary to its name, will usually not return the exact retain count of an object. It is mainly used for system-level purposes. Invoking it manually is not recommended by Apple.
</p><p>A newly allocated object created with <code>alloc</code> or <code>copy</code> has a retain count of one. Sending that object a <code>retain</code> message increments the retain count, while sending it a <code>release</code> message decrements the retain count. When an object's retain count reaches zero, it is deallocated by a procedure similar to a C++ <i>destructor</i>. <code>dealloc</code> is not guaranteed to be invoked.
</p><p>Starting with Objective-C 2.0, the Objective-C runtime implemented an optional <a href="Objective-C#Garbage_collection" title="Objective-C">garbage collector</a>, which is now obsolete and deprecated in favor of <a href="Automatic_Reference_Counting" title="Automatic Reference Counting">Automatic Reference Counting</a> (ARC). In this model, the runtime turned Cocoa <a href="Reference_counting" title="Reference counting">reference counting</a> operations such as "retain" and "release" into <a href="No-op" class="mw-redirect" title="No-op">no-ops</a>. The garbage collector does not exist on the <a href="IOS" title="IOS">iOS</a> implementation of Objective-C 2.0. Garbage collection in Objective-C ran on a low-priority background thread, and can halt on Cocoa's user events, with the intention of keeping the user experience responsive. The legacy garbage collector is still available on Mac OS X version 10.13, but no Apple-provided applications use it.
</p><p>In 2011, the <a href="LLVM" title="LLVM">LLVM</a> compiler introduced <a href="Automatic_Reference_Counting" title="Automatic Reference Counting">Automatic Reference Counting</a> (ARC), which replaces the conventional garbage collector by performing static analysis of Objective-C source code and inserting retain and release messages as necessary.
</p>
<div class="mw-heading mw-heading2"><h2 id="Main_frameworks">Main frameworks</h2></div>
<p>Cocoa consists of three <a href="Objective-C" title="Objective-C">Objective-C</a> object libraries called <i><a href="Application_framework" title="Application framework">frameworks</a></i>. Frameworks are functionally similar to <a href="Library_(computer_science)" class="mw-redirect" title="Library (computer science)">shared libraries</a>, a compiled object that can be dynamically loaded into a program's address space at runtime, but frameworks add associated resources, header files, and documentation. The Cocoa frameworks are implemented as a type of <a href="Bundle_(macOS)" title="Bundle (macOS)">bundle</a>, containing the aforementioned items in standard locations.
</p>
<ul><li><i><a href="Foundation_Kit" title="Foundation Kit">Foundation Kit</a></i> (<i>Foundation</i>), first appeared in Enterprise Objects Framework on NeXTSTEP 3.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> It was developed as part of the OpenStep work, and subsequently became the basis for OpenStep's AppKit when that system was released in 1994. On macOS, Foundation is based on <a href="Core_Foundation" title="Core Foundation">Core Foundation</a>. Foundation is a generic object-oriented library providing <a href="String_(computer_science)" title="String (computer science)">string</a> and value manipulation, <a href="Container_(data_structure)" class="mw-redirect" title="Container (data structure)">containers</a> and <a href="Iteration" title="Iteration">iteration</a>, <a href="Distributed_computing" title="Distributed computing">distributed computing</a>, <a href="Event_loop" title="Event loop">event loops</a> (run loops), and other functions that are not directly tied to the graphical user interface. The "NS" prefix, used for all classes and <a href="Constant_(programming)" class="mw-redirect" title="Constant (programming)">constants</a> in the framework, comes from Cocoa's OPENSTEP heritage, which was jointly developed by NeXT and <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>.</li>
<li><i><a href="Application_Kit" class="mw-redirect" title="Application Kit">Application Kit</a></i> (<i>AppKit</i>) is directly descended from the original NeXTSTEP Application Kit. It contains code programs can use to create and interact with <a href="Graphical_user_interface" title="Graphical user interface">graphical user interfaces</a>. AppKit is built on top of Foundation, and uses the same <i>NS</i> prefix.</li>
<li><i><a href="Core_Data" title="Core Data">Core Data</a></i> is the object persistence framework included with Foundation and Cocoa and found in Cocoa.h.<sup id="cite_ref-apple1_1-1" class="reference"><a href="#cite_note-apple1-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></li></ul>
<p>A key part of the Cocoa architecture is its comprehensive views model. This is organized along conventional lines for an application framework, but is based on the <a href="Portable_Document_Format" class="mw-redirect" title="Portable Document Format">Portable Document Format</a> (PDF) drawing model provided by <a href="Quartz_(graphics_layer)" title="Quartz (graphics layer)">Quartz</a>. This allows creating custom drawing content using <a href="PostScript" title="PostScript">PostScript</a>-like drawing commands, which also allows automatic printer support and so forth. Since the Cocoa framework manages all the clipping, scrolling, scaling and other chores of drawing graphics, the programmer is freed from implementing basic infrastructure and can concentrate on the unique aspects of an application's content.
</p>
<div class="mw-heading mw-heading2"><h2 id="Model–view–controller">Model–view–controller</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">Model–view–controller</a></div>
<p>The <a href="Smalltalk" title="Smalltalk">Smalltalk</a> teams at <a href="Xerox_PARC" class="mw-redirect" title="Xerox PARC">Xerox PARC</a> eventually settled on a design philosophy that led to easy development and high code reuse. Named <i><a href="Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">model–view–controller</a></i> (MVC), the concept breaks an application into three sets of interacting object classes:
</p>
<ul><li>Model classes represent problem domain data and operations (such as lists of people/departments/budgets; documents containing sections/paragraphs/footnotes of stylized text).</li>
<li>View classes implement visual representations and affordances for human-computer interaction (such as scrollable grids of captioned icons and pop-up menus of possible operations).</li>
<li>Controller classes contain logic that surfaces model data as view representations, maps affordance-initiated user actions to model operations, and maintains state to keep the two synchronized.</li></ul>
<p>Cocoa's design is a fairly, but not absolutely strict application of MVC principles. Under OpenStep, most of the classes provided were either high-level View classes (in AppKit) or one of a number of relatively low-level model classes like NSString. Compared to similar MVC systems, OpenStep lacked a strong model layer. No stock class represented a "document," for instance. During the transition to Cocoa, the model layer was expanded greatly, introducing a number of pre-rolled classes to provide functionality common to desktop applications.
</p><p>In Mac OS X 10.3, Apple introduced the NSController family of classes, which provide predefined behavior for the controller layer. These classes are considered part of the Cocoa Bindings system, which also makes extensive use of protocols such as Key-Value Observing and Key-Value Binding. The term 'binding' refers to a relationship between two objects, often between a view and a controller. Bindings allow the developer to focus more on declarative relationships rather than orchestrating fine-grained behavior.
</p><p>With the arrival of Mac OS X 10.4, Apple extended this foundation further by introducing the <a href="Core_Data" title="Core Data">Core Data</a> framework, which standardizes change tracking and persistence in the model layer. In effect, the framework greatly simplifies the process of making changes to application data, undoing changes when necessary, saving data to disk, and reading it back in.
</p><p>In providing framework support for all three MVC domains, Apple's goal is to reduce the amount of boilerplate or "glue" code that developers have to write, freeing up resources to spend time on application-specific features.
</p>
<div class="mw-heading mw-heading2"><h2 id="Late_binding">Late binding</h2></div>
<p>In most object-oriented languages, calls to methods are represented physically by a pointer to the code in memory. This restricts the design of an application since specific <i>command handling</i> classes are needed, usually organized according to the <a href="Chain-of-responsibility_pattern" title="Chain-of-responsibility pattern">chain-of-responsibility pattern</a>. While Cocoa retains this approach for the most part, Objective-C's <a href="Name_binding#Late_static" title="Name binding">late binding</a> opens up more flexibility.
</p><p>Under Objective-C, methods are represented by a <i>selector</i>, a string describing the method to call. When a message is sent, the selector is sent into the Objective-C runtime, matched against a list of available methods, and the method's <i>implementation</i> is called. Since the selector is text data, this lets it be saved to a file, transmitted over a network or between processes, or manipulated in other ways. The implementation of the method is looked up at runtime, not compile time. There is a small performance penalty for this,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> but late binding allows the same selector to reference different implementations.
</p><p>By a similar token, Cocoa provides a pervasive data manipulation method called <i>key-value coding</i> (KVC).<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> This allows a piece of data or property of an object to be looked up or changed at runtime by name. The property name acts as a key to the value. In traditional languages, this late binding is impossible. KVC leads to great design flexibility. An object's type need not be known, yet any property of that object can be discovered using KVC. Also, by extending this system using something Cocoa terms <i>key-value observing</i> (KVO), automatic support for <a href="Undo" title="Undo">undo-redo</a> is provided.
</p><p>Late static binding is a variant of binding somewhere between static and dynamic binding. The binding of names before the program is run is called static (<i>early</i>); bindings performed as the program runs are dynamic (<i>late</i> or <i>virtual</i>).
</p>
<div class="mw-heading mw-heading2"><h2 id="Rich_objects">Rich objects</h2></div>
<p>One of the most useful features of Cocoa is the powerful <i>base objects</i> the system supplies. As an example, consider the Foundation classes <code>NSString</code> and <code>NSAttributedString</code>, which provide <a href="Unicode" title="Unicode">Unicode</a> <a href="String_(computer_science)" title="String (computer science)">strings</a>, and the <code><a href="NSText" class="mw-redirect" title="NSText">NSText</a></code> system in AppKit, which allows the programmer to place string objects in the GUI.
</p><p><code>NSText</code> and its related classes are used to display and edit strings. The collection of objects involved permit an application to implement anything from a simple single-line text entry field to a complete multi-page, multi-column text layout schema, with full professional <a href="Typography" title="Typography">typography</a> features such as <a href="Kerning" title="Kerning">kerning</a>, <a href="Ligature_(typography)" class="mw-redirect" title="Ligature (typography)">ligatures</a>, running text around arbitrary <a href="Shape" title="Shape">shapes</a>, <a href="Rotation" title="Rotation">rotation</a>, full Unicode support, and <a href="Spatial_anti-aliasing" title="Spatial anti-aliasing">anti-aliased</a> <a href="Glyph" title="Glyph">glyph</a> rendering. Paragraph layout can be controlled automatically or by the user, using a built-in "<a href="Ruler" title="Ruler">ruler</a>" object that can be attached to any text view. Spell checking is automatic, using a system-wide set of language dictionaries. Unlimited undo/redo support is built in. Using only the built-in features, one can write a text editor application in as few as 10 lines of code. With new controller objects, this may fall towards zero.
When extensions are needed, Cocoa's use of Objective-C makes this a straightforward task. Objective-C includes the concept of "<a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-SW1">categories</a>," which allows modifying existing class "in-place". Functionality can be accomplished in a category without any changes to the original classes in the framework, or even access to its source. In other common languages, this same task requires deriving a new subclass supporting the added features, and then replacing all instances of the original class with instances of the new subclass.
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementations_and_bindings">Implementations and bindings</h2></div>
<p>The Cocoa frameworks are written in <a href="Objective-C" title="Objective-C">Objective-C</a>. Java <a href="Language_binding" title="Language binding">bindings</a> for the Cocoa frameworks (termed the <i>Java bridge</i>) were also made available with the aim of replacing Objective-C with a more popular language<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> but these bindings were unpopular among Cocoa developers and Cocoa's message passing semantics did not translate well to a statically-typed language such as Java.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Cocoa's need for runtime binding means many of Cocoa's key features are not available with Java. In 2005, Apple announced that the Java bridge was to be deprecated, meaning that features added to Cocoa in macOS versions later than 10.4 would not be added to the Cocoa-Java programming interface.
</p><p>At <a href="Apple_Worldwide_Developers_Conference" class="mw-redirect" title="Apple Worldwide Developers Conference">Apple Worldwide Developers Conference</a> (WWDC) 2014, Apple introduced a new programming language named <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a>, which is intended to replace Objective-C.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="AppleScriptObjC">AppleScriptObjC</h3></div>
<p>Originally, AppleScript Studio could be used to develop simpler Cocoa applications.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> However, as of Snow Leopard, it has been deprecated. It was replaced with AppleScriptObjC, which allows programming in <a href="AppleScript" title="AppleScript">AppleScript</a>, while using Cocoa frameworks.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Other_bindings">Other bindings</h3></div>
<p>The Cocoa programming environment can be accessed using other tools with the aid of <a href="Language_binding" title="Language binding">bridge mechanisms</a> such as <a href="PasCocoa" class="mw-redirect" title="PasCocoa">PasCocoa</a>, <a href="PyObjC" title="PyObjC">PyObjC</a>, <a href="CamelBones" title="CamelBones">CamelBones</a>, <a href="RubyCocoa" title="RubyCocoa">RubyCocoa</a>, and a <a href="D_(programming_language)" title="D (programming language)">D</a>/Objective-C Bridge.
</p><p>Third-party bindings available for other languages include <a href="AppleScript" title="AppleScript">AppleScript</a>, <a href="Clozure_CL" title="Clozure CL">Clozure CL</a>, <a href="Monobjc" class="mw-redirect" title="Monobjc">Monobjc</a> and <a href="NObjective" title="NObjective">NObjective</a> (<a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>), <a href="Cocoa_Sharp" class="mw-redirect" title="Cocoa Sharp">Cocoa#</a> (CLI), Cocodao and <a href="D_(programming_language)" title="D (programming language)">D</a>/Objective-C Bridge,<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> <a href="LispWorks" title="LispWorks">LispWorks</a>, <a href="Object_Pascal" title="Object Pascal">Object Pascal</a>, <a href="CamelBones" title="CamelBones">CamelBones</a> (<a href="Perl" title="Perl">Perl</a>), <a href="PyObjC" title="PyObjC">PyObjC</a> (<a href="Python_(programming_language)" title="Python (programming language)">Python</a>), FPC PasCocoa (<a href="Lazarus_(IDE)" class="mw-redirect" title="Lazarus (IDE)">Lazarus</a> and <a href="Free_Pascal" title="Free Pascal">Free Pascal</a>), <a href="RubyCocoa" title="RubyCocoa">RubyCocoa</a> (<a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>).<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>A Ruby language implementation named <a href="MacRuby" title="MacRuby">MacRuby</a>, which removes the need for a bridge mechanism, was formerly developed by Apple, while <a href="Nu_(programming_language)" title="Nu (programming language)">Nu</a> is a <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a>-like language that uses the <a href="Objective-C" title="Objective-C">Objective-C</a> object model directly, and thus can use the Cocoa frameworks without needing a binding.
</p>
<div class="mw-heading mw-heading3"><h3 id="Other_implementations">Other implementations</h3></div>
<p>There are also open source implementations of major parts of the Cocoa framework, such as <a href="GNUstep" title="GNUstep">GNUstep</a> and Cocotron,<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> which allow <a href="Cross-platform" class="mw-redirect" title="Cross-platform">cross-platform</a> Cocoa application development to target other operating systems, such as <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> and <a href="Linux" title="Linux">Linux</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */
.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}
/* end https://en.wikipedia.org/ */
</style><div class="div-col" style="column-width: 25em;">
<ul><li><a href="Carbon_(API)" title="Carbon (API)">Carbon (API)</a></li>
<li><a href="GNUStep" class="mw-redirect" title="GNUStep">GNUStep</a></li>
<li><a href="Objective-C" title="Objective-C">Objective-C</a></li>
<li><a href="Xcode" title="Xcode">Xcode</a></li>
<li><a href="IOS_SDK" title="IOS SDK">iOS SDK</a></li>
<li><a href="Interface_Builder" title="Interface Builder">Interface Builder</a></li>
<li><a href="Aqua_(user_interface)" title="Aqua (user interface)">Aqua (user interface)</a></li>
<li><a href="Rosetta_(software)" title="Rosetta (software)">Rosetta (software)</a></li>
<li><a href="XNU" title="XNU">XNU</a></li>
<li><a href="Quartz_(graphics_layer)" title="Quartz (graphics layer)">Quartz (graphics layer)</a></li>
<li><a href="X11" class="mw-redirect" title="X11">X11</a></li>
<li><a href="QuickDraw" title="QuickDraw">QuickDraw</a></li>
<li><a href="SIMBL" title="SIMBL">SIMBL</a></li>
<li><a href="Swift_(programming_language)" title="Swift (programming language)">Swift (programming language)</a></li></ul></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-apple1-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-apple1_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-apple1_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemFrameworks/SystemFrameworks.html">Mac Technology Overview: OS X Frameworks</a>. Developer.apple.com. Retrieved on September 18, 2013.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFAmit_Singh2006" class="citation book cs1">Amit Singh (June 19, 2006). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=K8vUkpOXhN4C&q=NS+prefix"><i>Mac OS X Internals: A Systems Approach</i></a>. Addison-Wesley Professional. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-321-27854-2</bdi>. <q>Cocoa is an important inheritance from NeXT, as indicated by .. the "NS" prefix</q></cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFMardesich1997" class="citation news cs1">Mardesich, Jodi (April 14, 1997). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160306122132/http://nl.newsbank.com/nl-search/we/Archives?p_product=SJ&p_theme=sj&p_action=search&p_maxdocs=200&s_dispstring=allfields(Peter%20Jensen)%20AND%20date(1/1/1997%20to%201/1/1998)&p_field_date-0=YMD_date&p_params_date-0=date:B,E&p_text_date-0=1/1/1997%20to%201/1/1998)&p_field_advanced-0=&p_text_advanced-0=(%22Peter%20Jensen%22)&xcal_numdocs=20&p_perpage=10&p_sort=YMD_date:D&xcal_useweights=no">"A Sour Note in Apple's Rhapsody Once-Loyal Software Writers Wary of New OS as Crucial Conference Looms"</a>. No. Morning Final. San Jose Mercury News. Archived from <a rel="nofollow" class="external text" href="http://nl.newsbank.com/nl-search/we/Archives?p_product=SJ&p_theme=sj&p_action=search&p_maxdocs=200&s_dispstring=allfields(Peter%20Jensen)%20AND%20date(1/1/1997%20to%201/1/1998)&p_field_date-0=YMD_date&p_params_date-0=date:B,E&p_text_date-0=1/1/1997%20to%201/1/1998)&p_field_advanced-0=&p_text_advanced-0=(%22Peter%20Jensen%22)&xcal_numdocs=20&p_perpage=10&p_sort=YMD_date:D&xcal_useweights=no">the original</a> on March 6, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">August 13,</span> 2015</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFApple_Inc.1999" class="citation cs2">Apple Inc. (May 10, 1999), <a rel="nofollow" class="external text" href="http://archive.org/details/1999-05-10-wwdc-keynote-bad-audio"><i>WWDC 1999</i></a><span class="reference-accessdate">, retrieved <span class="nowrap">April 27,</span> 2024</span></cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/HybridWorld.htmld/index.html">HybridWorld</a>. Cilinder.be. Retrieved on September 18, 2013.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><a href="https://en.wikibooks.org/wiki/Programming_Mac_OS_X_with_Cocoa_for_beginners/Objective_C,_the_language_and_its_advantages#Some_Objective-C_advantages" class="extiw external" title="wikibooks:Programming Mac OS X with Cocoa for beginners/Objective C, the language and its advantages">Wikibooks - Some Objective-C advantages</a></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/KeyValueCoding/">"Key-Value Coding Programming Guide"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">September 27,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFSteve_Klingsporn2003" class="citation journal cs1">Steve Klingsporn (2003). <a rel="nofollow" class="external text" href="http://www.mactech.com/articles/mactech/Vol.19/19.12/CocoaAppsinJava/index.html">"Writing Cocoa Apps in Java"</a>. <i><a href="MacTech" title="MacTech">MacTech</a></i>. <b>19</b> (12).</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/Legacy/JavaBridge/JavaBridge.pdf">"Using the Java Bridge"</a> <span class="cs1-format">(PDF)</span>. <a href="Apple_Inc." title="Apple Inc.">Apple Inc.</a> <q>Because Java is a strongly typed language, it requires more information about the classes and interfaces it manipulates at compile time. Therefore, before using Objective-C classes as Java ones, a description of them has to be written and compiled.</q></cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://appleinsider.com/articles/14/06/04/apples-top-secret-swift-language-grew-from-work-to-sustain-objective-c-which-it-now-aims-to-replace">"Apple's top secret Swift language grew from work to sustain Objective-C, which it now aims to replace"</a>. June 4, 2014.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/legacy/library/documentation/AppleScript/Conceptual/StudioBuildingApps/chapter02/studio_about_book.html#//apple_ref/doc/uid/20001249-TPXREF101">"AppleScript Studio Programming Guide (Not Recommended): About AppleScript Studio"</a>. Apple, Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">November 20,</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#releasenotes/ScriptingAutomation/RN-AppleScriptObjC/">"AppleScriptObjC Release Notes"</a>. Apple, Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">November 20,</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://sourceforge.net/projects/cocodao/">Cocodao</a>, bridge to create Cocoa applications in D language.</span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://michelf.com/weblog/2007/d-objc-bridge/">D/Objective-C Bridge</a>, a <a href="Language_binding" title="Language binding">language binding</a> mechanism for Cocoa.</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://osx.hyperjeff.net/Reference/cocoa.php">more extensive list of implementations</a></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.cocotron.org/">Cocotron</a>, free software implementation of Cocoa.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Bibliography">Bibliography</h2></div>
<ul><li><a href="Aaron_Hillegass" title="Aaron Hillegass">Aaron Hillegass</a>: <i>Cocoa Programming for Mac OS X</i>, Addison-Wesley, 3rd Edition 2008, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-321-50361-9</bdi>.</li>
<li>Stephen Kochan: <i>Programming in Objective-C</i>, Sams, 1st Edition 2003, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-672-32586-1</bdi>.</li>
<li>Michael Beam, James Duncan Davidson: <i>Cocoa in a Nutshell</i>, O'Reilly, 1st Edition 2003, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-596-00462-1</bdi>.</li>
<li>Erick Tejkowski: <i>Cocoa Programming for Dummies</i>, 1st Edition 2003, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-7645-2613-8</bdi>.</li>
<li><cite id="CITEREFGarfinkelMahoney2002" class="citation book cs1"><a href="Simson_Garfinkel" title="Simson Garfinkel">Garfinkel, Simson</a>; Mahoney, Michael K. (2002). <i>Building Cocoa Applications: A Step by Step Guide</i> (1st ed.). <a href="O'Reilly_Media" title="O'Reilly Media">O'Reilly Media</a>. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.394.3248">10.1.1.394.3248</a></span>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-596-00235-1</bdi>.</cite></li>
<li><a href="Paris_Buttfield-Addison" class="mw-redirect" title="Paris Buttfield-Addison">Paris Buttfield-Addison</a>, Jon Manning: <i>Learning Cocoa with Objective-C</i>, O'Reilly, 3rd Edition 2012, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-4493-1849-9</bdi>.</li>
<li>Scott Anguish, Erik M. Buck, Donald A. Yacktman: <i>Cocoa Programming</i>, Sams, 1st Edition 2002, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-672-32230-7</bdi>.</li>
<li>Erik M. Buck, Donald A. Yacktman: <i>Cocoa Design Patterns</i>, Addison-Wesley Professional, 1st Edition 2009, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0321535023</bdi></li>
<li>Bill Cheeseman: <i>Cocoa Recipes for Mac OS X</i>, Peachpit Press, 1st Edition 2002, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-201-87801-1</bdi>.</li>
<li>Andrew Duncan: <i>Objective-C Pocket Reference, O'Reilly</i>, 1st Edition 2002, Paperback, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-596-00423-0</bdi>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/navigation/#section=Frameworks&topic=Cocoa%20Layer">Mac Developer Library, Cocoa Layer</a>, Apple's documentation</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190202170514/http://www.idevapps.com/">iDevApps</a>, Mac programming forum</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20201114133049/http://cocoadevcentral.com/">Cocoa Dev Central</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080801025517/http://www.cocoadev.com/">Cocoa Dev</a></li>
<li><a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/tagged/cocoa">Stack Overflow: Cocoa</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="macOS408" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="macOS408" style="font-size:114%;margin:0 4em"><a href="MacOS" title="MacOS">macOS</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="MacOS_version_history" title="MacOS version history">History</a></li>
<li><a href="Architecture_of_macOS" title="Architecture of macOS">Architecture</a></li>
<li><a href="List_of_built-in_macOS_apps" title="List of built-in macOS apps">Built-in apps</a></li>
<li><a href="MacOS_Server" class="mw-redirect" title="MacOS Server">Server</a></li>
<li><a href="List_of_Mac_software" title="List of Mac software">Software</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Versions</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Mac OS X</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mac_OS_X_Server_1.0" title="Mac OS X Server 1.0">Server 1.0</a></li>
<li><a href="Mac_OS_X_Public_Beta" title="Mac OS X Public Beta">Public Beta</a></li>
<li><a href="Mac_OS_X_10.0" title="Mac OS X 10.0">10.0 Cheetah</a></li>
<li><a href="Mac_OS_X_10.1" title="Mac OS X 10.1">10.1 Puma</a></li>
<li><a href="Mac_OS_X_Jaguar" title="Mac OS X Jaguar">10.2 Jaguar</a></li>
<li><a href="Mac_OS_X_Panther" title="Mac OS X Panther">10.3 Panther</a></li>
<li><a href="Mac_OS_X_Tiger" title="Mac OS X Tiger">10.4 Tiger</a></li>
<li><a href="Mac_OS_X_Leopard" title="Mac OS X Leopard">10.5 Leopard</a></li>
<li><a href="Mac_OS_X_Snow_Leopard" title="Mac OS X Snow Leopard">10.6 Snow Leopard</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">OS X</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="OS_X_Lion" title="OS X Lion">10.7 Lion</a></li>
<li><a href="OS_X_Mountain_Lion" title="OS X Mountain Lion">10.8 Mountain Lion</a></li>
<li><a href="OS_X_Mavericks" title="OS X Mavericks">10.9 Mavericks</a></li>
<li><a href="OS_X_Yosemite" title="OS X Yosemite">10.10 Yosemite</a></li>
<li><a href="OS_X_El_Capitan" title="OS X El Capitan">10.11 El Capitan</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">macOS</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MacOS_Sierra" title="MacOS Sierra">10.12 Sierra</a></li>
<li><a href="MacOS_High_Sierra" title="MacOS High Sierra">10.13 High Sierra</a></li>
<li><a href="MacOS_Mojave" title="MacOS Mojave">10.14 Mojave</a></li>
<li><a href="MacOS_Catalina" title="MacOS Catalina">10.15 Catalina</a></li>
<li><a href="MacOS_Big_Sur" title="MacOS Big Sur">11 Big Sur</a></li>
<li><a href="MacOS_Monterey" title="MacOS Monterey">12 Monterey</a></li>
<li><a href="MacOS_Ventura" title="MacOS Ventura">13 Ventura</a></li>
<li><a href="MacOS_Sonoma" title="MacOS Sonoma">14 Sonoma</a></li>
<li><a href="MacOS_Sequoia" title="MacOS Sequoia">15 Sequoia</a></li>
<li><a href="MacOS_Tahoe" title="MacOS Tahoe">26 Tahoe</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Predecessors</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a></li>
<li><a href="NeXTSTEP" title="NeXTSTEP">NeXTSTEP</a></li>
<li><a href="Rhapsody_(operating_system)" title="Rhapsody (operating system)">Rhapsody</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Core<br>applications</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mac_App_Store" title="Mac App Store">App Store</a></li>
<li><a href="Automator_(macOS)" title="Automator (macOS)">Automator</a></li>
<li><a href="Calculator_(Apple)" title="Calculator (Apple)">Calculator</a></li>
<li><a href="Calendar_(Apple)" title="Calendar (Apple)">Calendar</a></li>
<li><a href="List_of_built-in_macOS_apps#Chess" title="List of built-in macOS apps">Chess</a></li>
<li><a href="Contacts_(Apple)" title="Contacts (Apple)">Contacts</a></li>
<li><a href="Control_Center_(Apple)" title="Control Center (Apple)">Control Center</a></li>
<li><a href="Dictionary_(software)" title="Dictionary (software)">Dictionary</a></li>
<li><a href="DVD_Player_(macOS)" class="mw-redirect" title="DVD Player (macOS)">DVD Player</a></li>
<li><a href="FaceTime" title="FaceTime">FaceTime</a></li>
<li><a href="Finder_(software)" title="Finder (software)">Finder</a></li>
<li><a href="Game_Center" title="Game Center">Game Center</a></li>
<li><a href="Grapher" title="Grapher">Grapher</a></li>
<li><a href="HomeKit" class="mw-redirect" title="HomeKit">Home</a></li>
<li><a href="Launchpad_(macOS)" class="mw-redirect" title="Launchpad (macOS)">Launchpad</a></li>
<li><a href="Apple_Mail" title="Apple Mail">Mail</a></li>
<li><a href="Messages_(Apple)" title="Messages (Apple)">Messages</a></li>
<li><a href="Apple_News" title="Apple News">News</a></li>
<li><a href="Music_(software)" class="mw-redirect" title="Music (software)">Music</a></li>
<li><a href="Notes_(Apple)" title="Notes (Apple)">Notes</a></li>
<li><a href="Notification_Center" title="Notification Center">Notification Center</a></li>
<li><a href="Apple_Podcasts" title="Apple Podcasts">Podcasts</a></li>
<li><a href="Photo_Booth" title="Photo Booth">Photo Booth</a></li>
<li><a href="Photos_(Apple)" title="Photos (Apple)">Photos</a></li>
<li><a href="Preview_(macOS)" title="Preview (macOS)">Preview</a></li>
<li><a href="QuickTime" title="QuickTime">QuickTime Player</a></li>
<li><a href="Reminders_(Apple)" title="Reminders (Apple)">Reminders</a></li>
<li><a href="Safari_(web_browser)" title="Safari (web browser)">Safari</a>
<ul><li><a href="Safari_version_history" class="mw-redirect" title="Safari version history">version history</a></li></ul></li>
<li><a href="Shortcuts_(app)" class="mw-redirect" title="Shortcuts (app)">Shortcuts</a></li>
<li><a href="Siri" title="Siri">Siri</a></li>
<li><a href="Stickies_(Apple)" title="Stickies (Apple)">Stickies</a></li>
<li><a href="TextEdit" title="TextEdit">TextEdit</a></li>
<li><a href="Time_Machine_(macOS)" title="Time Machine (macOS)">Time Machine</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Apple_Developer_Tools" title="Apple Developer Tools">Developer<br>Tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Xcode" title="Xcode">Xcode</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Instruments_(software)" title="Instruments (software)">Instruments</a></li>
<li><a href="Apple_Developer_Tools#FileMerge" title="Apple Developer Tools">FileMerge</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Former</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interface_Builder" title="Interface Builder">Interface Builder</a></li>
<li><a href="Dashcode" title="Dashcode">Dashcode</a></li>
<li><a href="Quartz_Composer" title="Quartz Composer">Quartz Composer</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Former</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Dashboard_(macOS)" title="Dashboard (macOS)">Dashboard</a></li>
<li><a href="Front_Row_(software)" title="Front Row (software)">Front Row</a></li>
<li><a href="IChat" title="IChat">iChat</a></li>
<li><a href="IPhoto" title="IPhoto">iPhoto</a></li>
<li><a href="ISync" title="ISync">iSync</a></li>
<li><a href="ITunes" title="ITunes">iTunes</a>
<ul><li><a href="History_of_iTunes" title="History of iTunes">history</a></li></ul></li>
<li><a href="Sherlock_(software)" title="Sherlock (software)">Sherlock</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Utilities</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Activity_Monitor_(macOS)" class="mw-redirect" title="Activity Monitor (macOS)">Activity Monitor</a></li>
<li><a href="AirPort_Utility" class="mw-redirect" title="AirPort Utility">AirPort Utility</a></li>
<li><a href="Archive_Utility" class="mw-redirect" title="Archive Utility">Archive Utility</a></li>
<li><a href="Audio_MIDI_Setup" class="mw-redirect" title="Audio MIDI Setup">Audio MIDI Setup</a></li>
<li><a href="Bluetooth_File_Exchange" class="mw-redirect" title="Bluetooth File Exchange">Bluetooth File Exchange</a></li>
<li><a href="Boot_Camp_(software)" title="Boot Camp (software)">Boot Camp</a></li>
<li><a href="ColorSync" title="ColorSync">ColorSync</a></li>
<li><a href="Apple_Configurator" title="Apple Configurator">Configurator</a></li>
<li><a href="List_of_built-in_macOS_apps#Console" title="List of built-in macOS apps">Console</a></li>
<li><a href="List_of_built-in_macOS_apps#Crash_Reporter" title="List of built-in macOS apps">Crash Reporter</a></li>
<li><a href="Digital_Color_Meter" class="mw-redirect" title="Digital Color Meter">Digital Color Meter</a></li>
<li><a href="Directory_Utility" class="mw-redirect" title="Directory Utility">Directory Utility</a></li>
<li><a href="DiskImageMounter" class="mw-redirect" title="DiskImageMounter">DiskImageMounter</a></li>
<li><a href="Disk_Utility" title="Disk Utility">Disk Utility</a></li>
<li><a href="Font_Book" title="Font Book">Font Book</a></li>
<li><a href="Apple_Help_Viewer" class="mw-redirect" title="Apple Help Viewer">Help Viewer</a></li>
<li><a href="Image_Capture" class="mw-redirect" title="Image Capture">Image Capture</a></li>
<li><a href="Installer_(macOS)" class="mw-redirect" title="Installer (macOS)">Installer</a></li>
<li><a href="Keychain_(software)" title="Keychain (software)">Keychain Access</a></li>
<li><a href="Migration_Assistant_(Apple)" class="mw-redirect" title="Migration Assistant (Apple)">Migration Assistant</a></li>
<li><a href="Script_Editor" class="mw-redirect" title="Script Editor">Script Editor</a></li>
<li><a href="System_Settings" title="System Settings">System Settings</a></li>
<li><a href="System_Information_(Mac)" class="mw-redirect" title="System Information (Mac)">System Information</a></li>
<li><a href="Terminal_(macOS)" title="Terminal (macOS)">Terminal</a></li>
<li><a href="Universal_Access" class="mw-redirect" title="Universal Access">Universal Access</a></li>
<li><a href="VoiceOver" title="VoiceOver">VoiceOver</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Grab_(macOS)" class="mw-redirect" title="Grab (macOS)">Grab</a></li>
<li><a href="Network_Utility" class="mw-redirect" title="Network Utility">Network Utility</a></li>
<li><a href="ODBC_Administrator" class="mw-redirect" title="ODBC Administrator">ODBC Administrator</a></li>
<li><a href="Remote_Install_Mac_OS_X" class="mw-redirect" title="Remote Install Mac OS X">Remote Install Mac OS X</a></li>
<li><a href="Apple_Software_Update" class="mw-redirect" title="Apple Software Update">Software Update</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Technologies,<br><a href="User_interface" title="User interface">user interface</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="AirDrop" title="AirDrop">AirDrop</a></li>
<li><a href="AppKit" title="AppKit">AppKit</a></li>
<li><a href="Apple_File_System" title="Apple File System">Apple File System</a></li>
<li><a href="Apple_menu" title="Apple menu">Apple menu</a></li>
<li><a href="Apple_Push_Notification_service" title="Apple Push Notification service">Apple Push Notification service</a></li>
<li><a href="AppleScript" title="AppleScript">AppleScript</a></li>
<li><a href="Aqua_(user_interface)" title="Aqua (user interface)">Aqua</a></li>
<li><a href="Audio_Units" title="Audio Units">Audio Units</a></li>
<li><a href="AVFoundation" title="AVFoundation">AVFoundation</a></li>
<li><a href="Bonjour_(software)" title="Bonjour (software)">Bonjour</a></li>
<li><a href="Bundle_(macOS)" title="Bundle (macOS)">Bundle</a></li>
<li><a href="CloudKit" title="CloudKit">CloudKit</a></li>
<li><a href="ColorSync" title="ColorSync">ColorSync</a></li>
<li><a href="Command_key" title="Command key">Command key</a></li>
<li><a href="Core_Animation" title="Core Animation">Core Animation</a></li>
<li><a href="Core_Audio" title="Core Audio">Core Audio</a></li>
<li><a href="Core_Data" title="Core Data">Core Data</a></li>
<li><a href="Core_Foundation" title="Core Foundation">Core Foundation</a></li>
<li><a href="Core_Image" title="Core Image">Core Image</a></li>
<li><a href="Core_OpenGL" title="Core OpenGL">Core OpenGL</a></li>
<li><a href="Core_Text" title="Core Text">Core Text</a></li>
<li><a href="Core_Video" title="Core Video">Core Video</a></li>
<li><a href="Common_Unix_Printing_System" class="mw-redirect" title="Common Unix Printing System">CUPS</a></li>
<li><a href="Cover_Flow" title="Cover Flow">Cover Flow</a></li>
<li><a href="Darwin_(operating_system)" title="Darwin (operating system)">Darwin</a></li>
<li><a href="Dock_(macOS)" title="Dock (macOS)">Dock</a></li>
<li><a href="FileVault" title="FileVault">FileVault</a></li>
<li><a href="List_of_typefaces_included_with_macOS" title="List of typefaces included with macOS">Fonts</a></li>
<li><a href="Foundation_Kit" title="Foundation Kit">Foundation</a></li>
<li><a href="Gatekeeper_(macOS)" title="Gatekeeper (macOS)">Gatekeeper</a></li>
<li><a href="Grand_Central_Dispatch" title="Grand Central Dispatch">Grand Central Dispatch</a></li>
<li><a href="Apple_Icon_Image_format" title="Apple Icon Image format">icns</a></li>
<li><a href="ICloud" title="ICloud">iCloud</a></li>
<li><a href="Kernel_panic#macOS" title="Kernel panic">Kernel panic</a></li>
<li><a href="Keychain_(software)" title="Keychain (software)">Keychain</a></li>
<li><a href="Launchd" title="Launchd">launchd</a></li>
<li><a href="Liquid_Glass" title="Liquid Glass">Liquid Glass</a></li>
<li><a href="Mach-O" title="Mach-O">Mach-O</a></li>
<li><a href="Menu_extra" title="Menu extra">Menu extra</a></li>
<li><a href="Metal_(API)" title="Metal (API)">Metal</a></li>
<li><a href="Mission_Control_(macOS)" title="Mission Control (macOS)">Mission Control</a></li>
<li><a href="Night_Shift_(software)" title="Night Shift (software)">Night Shift</a></li>
<li><a href="OpenCL" title="OpenCL">OpenCL</a></li>
<li><a href="Option_key" title="Option key">Option key</a></li>
<li><a href="Preference_Pane" class="mw-redirect" title="Preference Pane">Preference Pane</a></li>
<li><a href="Property_list" title="Property list">Property list</a></li>
<li><a href="Quartz_(graphics_layer)" title="Quartz (graphics layer)">Quartz</a></li>
<li><a href="Quick_Look" title="Quick Look">Quick Look</a></li>
<li><a href="Rosetta_(software)" title="Rosetta (software)">Rosetta</a></li>
<li><a href="Virtual_folder#macOS" title="Virtual folder">Smart Folders</a></li>
<li><a href="Speakable_items" title="Speakable items">Speakable items</a></li>
<li><a href="Spotlight_(Apple)" title="Spotlight (Apple)">Spotlight</a></li>
<li><a href="Stacks_(Mac_OS)" title="Stacks (Mac OS)">Stacks</a></li>
<li><a href="System_Integrity_Protection" title="System Integrity Protection">System Integrity Protection</a></li>
<li><a href="Uniform_Type_Identifier" title="Uniform Type Identifier">Uniform Type Identifier</a></li>
<li><a href="Universal_binary" title="Universal binary">Universal binary</a></li>
<li><a href="WebKit" title="WebKit">WebKit</a></li>
<li><a href="XNU" title="XNU">XNU</a></li>
<li><a href="XQuartz" title="XQuartz">XQuartz</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Deprecated</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HFS%2B" class="mw-redirect" title="HFS+">HFS+</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Apple_Type_Services_for_Unicode_Imaging" title="Apple Type Services for Unicode Imaging">ATSUI</a></li>
<li><a href="BootX_(Apple)" title="BootX (Apple)">BootX</a></li>
<li><a href="Brushed_metal_(interface)" class="mw-redirect" title="Brushed metal (interface)">Brushed metal</a></li>
<li><a href="Carbon_(API)" title="Carbon (API)">Carbon</a></li>
<li><a href="Classic_Environment" class="mw-redirect" title="Classic Environment">Classic Environment</a></li>
<li><a href="Inkwell_(Macintosh)" title="Inkwell (Macintosh)">Inkwell</a></li>
<li><a href="QuickTime" title="QuickTime">QuickTime</a></li>
<li><a href="Spaces_(software)" title="Spaces (software)">Spaces</a></li>
<li><a href="Xgrid" title="Xgrid">Xgrid</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><i>Italics</i> denote upcoming products.</li>
<li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="List_of_widget_toolkits573" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="List_of_widget_toolkits573" style="font-size:114%;margin:0 4em"><a href="List_of_widget_toolkits" title="List of widget toolkits">List</a> of <a href="Widget_toolkit" title="Widget toolkit">widget toolkits</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>Low-level platform-specific</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="AmigaOS" title="AmigaOS">AmigaOS</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Intuition_(Amiga)" title="Intuition (Amiga)">Intuition</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="MacOS" title="MacOS">macOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Macintosh_Toolbox" title="Macintosh Toolbox">Macintosh Toolbox</a></li>
<li><a href="Carbon_(API)" title="Carbon (API)">Carbon</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Windows_API" title="Windows API">Windows API</a></li>
<li><a href="Universal_Windows_Platform" title="Universal Windows Platform">UWP</a>
<ul><li><a href="Windows_Runtime" title="Windows Runtime">WinRT</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Unix" title="Unix">Unix</a>,<br>under <a href="X_Window_System" title="X Window System">X11</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Xlib" title="Xlib">Xlib</a></li>
<li><a href="XCB" title="XCB">XCB</a></li>
<li><a href="X_Toolkit_Intrinsics" title="X Toolkit Intrinsics">X Toolkit Intrinsics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="BeOS" title="BeOS">BeOS</a>, <a href="Haiku_(operating_system)" title="Haiku (operating system)">Haiku</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BeOS_API" class="mw-redirect" title="BeOS API">BeOS API</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Android_(operating_system)" title="Android (operating system)">Android</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="CLI38" scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mono_(software)#Xamarin.Android" title="Mono (software)">Xamarin.Android</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>Low Level Cross-platform</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="OpenTK" title="OpenTK">OpenTK</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C_(programming_language)" title="C (programming language)">C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="GDK" title="GDK">GDK</a></li>
<li><a href="Simple_DirectMedia_Layer" title="Simple DirectMedia Layer">Simple DirectMedia Layer</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Java_(programming_language)" title="Java (programming language)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_OpenGL" title="Java OpenGL">JOGL</a></li>
<li><a href="Lightweight_Java_Game_Library" class="mw-redirect" title="Lightweight Java Game Library">LWJGL</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>High-level, platform-specific</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="AmigaOS" title="AmigaOS">AmigaOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BOOPSI" title="BOOPSI">BOOPSI</a></li>
<li><a href="Magic_User_Interface" title="Magic User Interface">MUI</a></li>
<li><a href="ReAction_GUI" title="ReAction GUI">ReAction GUI</a></li>
<li><a href="Zune_(widget_toolkit)" title="Zune (widget toolkit)">Zune</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="MacOS" title="MacOS">macOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MacApp" title="MacApp">MacApp</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Objective-C" title="Objective-C">Objective-C</a>, <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="Cocoa_Touch" class="mw-redirect" title="Cocoa Touch">Cocoa Touch</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MacApp" title="MacApp">MacApp</a></li>
<li><a href="PowerPlant" title="PowerPlant">PowerPlant</a></li>
<li><a href="THINK_C" title="THINK C">THINK C</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Xamarin#Xamarin.Mac" title="Xamarin">Xamarin.Mac</a></li>
<li><a href="Mono_(software)#Xamarin.iOS" title="Mono (software)">Xamarin.iOS</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Windows_Forms" title="Windows Forms">Windows Forms</a></li>
<li><a href="Extensible_Application_Markup_Language" title="Extensible Application Markup Language">XAML</a>
<ul><li><a href="Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a></li>
<li><a href="Windows_UI_Library" title="Windows UI Library">Windows UI Library</a></li>
<li><a href="Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li></ul></li>
<li><a href="Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Microsoft_Foundation_Class_Library" title="Microsoft Foundation Class Library">MFC</a></li>
<li><a href="Active_Template_Library" title="Active Template Library">Active Template Library</a></li>
<li><a href="Windows_Template_Library" title="Windows Template Library">Windows Template Library</a></li>
<li><a href="Object_Windows_Library" title="Object Windows Library">Object Windows Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Visual_Component_Library" title="Visual Component Library">Visual Component Library</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Unix" title="Unix">Unix</a>,<br>under <a href="X_Window_System" title="X Window System">X11</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="X_Athena_Widgets" title="X Athena Widgets">Athena (Xaw)</a></li>
<li><a href="LessTif" title="LessTif">LessTif</a></li>
<li><a href="Motif_(software)" title="Motif (software)">Motif</a></li>
<li><a href="OLIT" title="OLIT">OLIT</a></li>
<li><a href="XForms_(toolkit)" title="XForms (toolkit)">XForms</a></li>
<li><a href="XView" title="XView">XView</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Android_(operating_system)" title="Android (operating system)">Android</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Android_software_development#Qt_for_Android" title="Android software development">Qt for Android</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>High-level, cross-platform</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C_(programming_language)" title="C (programming language)">C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Enlightenment_Foundation_Libraries" title="Enlightenment Foundation Libraries">Enlightenment Foundation Libraries</a></li>
<li><a href="GTK" title="GTK">GTK</a></li>
<li><a href="IUP_(software)" title="IUP (software)">IUP</a></li>
<li><a href="XForms_(toolkit)" title="XForms (toolkit)">XForms</a></li>
<li><a href="XVT" title="XVT">XVT</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bedrock_(framework)" title="Bedrock (framework)">Bedrock</a></li>
<li><a href="CEGUI" title="CEGUI">CEGUI</a></li>
<li><a href="Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a></li>
<li><a href="FLTK" title="FLTK">FLTK</a></li>
<li><a href="Fox_toolkit" title="Fox toolkit">FOX toolkit</a></li>
<li><a href="OpenGL_User_Interface_Library" class="mw-redirect" title="OpenGL User Interface Library">OpenGL User Interface Library</a></li>
<li><a href="Gtkmm" title="Gtkmm">gtkmm</a></li>
<li><a href="JUCE" title="JUCE">JUCE</a></li>
<li><a href="Qt_(software)" title="Qt (software)">Qt</a></li>
<li><a href="Rogue_Wave_Software" title="Rogue Wave Software">Rogue Wave Views</a></li>
<li><a href="TnFOX" class="mw-redirect" title="TnFOX">TnFOX</a></li>
<li><a href="Ultimate%2B%2B" title="Ultimate++">U++</a></li>
<li><a href="Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li>
<li><a href="WxWidgets" title="WxWidgets">wxWidgets</a></li>
<li><a href="Simple_and_Fast_Multimedia_Library" title="Simple and Fast Multimedia Library">Simple and Fast Multimedia Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Objective-C" title="Objective-C">Objective-C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="GNUstep" title="GNUstep">GNUstep</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Gtk_Sharp" class="mw-redirect" title="Gtk Sharp">Gtk#</a></li>
<li><a href="Tao_Framework" title="Tao Framework">Tao Framework</a>
<ul><li><a href="OpenTK" title="OpenTK">OpenTK</a></li></ul></li>
<li><a href="UIML" title="UIML">UIML</a></li>
<li><a href="MonoGame" title="MonoGame">MonoGame</a></li>
<li><a href="Moonlight_(runtime)" title="Moonlight (runtime)">Moonlight</a></li>
<li><a href="Xamarin#Xamarin.Forms" title="Xamarin">Xamarin.Forms</a></li>
<li>XWT<a rel="nofollow" class="external autonumber" href="https://www.mono-project.com/docs/gui/#xwt">[1]</a><a rel="nofollow" class="external autonumber" href="https://github.com/mono/xwt">[2]</a></li>
<li><a href=".NET#.NET_MAUI" title=".NET">.NET MAUI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Adobe_Flash" title="Adobe Flash">Adobe Flash</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Apache_Flex" title="Apache Flex">Apache Flex</a>
<ul><li><a href="MXML" title="MXML">MXML</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Go_(programming_language)" title="Go (programming language)">Go</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fyne_(software)" title="Fyne (software)">Fyne</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Haskell" title="Haskell">Haskell</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="WxHaskell" title="WxHaskell">wxHaskell</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Java_(programming_language)" title="Java (programming language)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Abstract_Window_Toolkit" title="Abstract Window Toolkit">Abstract Window Toolkit</a></li>
<li><a href="FXML" title="FXML">FXML</a></li>
<li><a href="JavaFX" title="JavaFX">JavaFX</a></li>
<li><a href="Qt_Jambi" class="mw-redirect" title="Qt Jambi">Qt Jambi</a></li>
<li><a href="Swing_(Java)" title="Swing (Java)">Swing</a></li>
<li><a href="Standard_Widget_Toolkit" title="Standard Widget Toolkit">Standard Widget Toolkit</a></li>
<li><a href="Google_Web_Toolkit" title="Google Web Toolkit">Google Web Toolkit</a></li>
<li><a href="Lightweight_User_Interface_Toolkit" title="Lightweight User Interface Toolkit">Lightweight User Interface Toolkit</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="JavaScript" title="JavaScript">JavaScript</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a></li>
<li><a href="Echo_(framework)" title="Echo (framework)">Echo</a></li>
<li><a href="Ext_JS" title="Ext JS">Ext JS</a></li>
<li><a href="Google_Closure_Tools" title="Google Closure Tools">Google Closure Tools</a></li>
<li><a href="JQuery_UI" title="JQuery UI">jQuery UI</a></li>
<li><a href="OpenUI5" title="OpenUI5">OpenUI5</a></li>
<li><a href="Qooxdoo" title="Qooxdoo">Qooxdoo</a></li>
<li><a href="YUI_Library" title="YUI Library">YUI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="LispWorks" title="LispWorks">CAPI</a></li>
<li><a href="Common_Lisp_Interface_Manager" title="Common Lisp Interface Manager">CLIM</a></li>
<li><a href="Allegro_Common_Lisp" title="Allegro Common Lisp">Common Graphics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Lua" title="Lua">Lua</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IUP_(software)" title="IUP (software)">IUP</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Lazarus_Component_Library" title="Lazarus Component Library">Lazarus Component Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a></li>
<li><a href="FpGUI" title="FpGUI">fpGUI</a></li>
<li><a href="IP_Pascal" title="IP Pascal">IP Pascal</a></li>
<li><a href="FireMonkey" title="FireMonkey">FireMonkey</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Perl" title="Perl">Perl</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Perl/<a href="Tk_(software)" title="Tk (software)">Tk</a></li>
<li><a href="WxPerl" class="mw-redirect" title="WxPerl">wxPerl</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="PHP" title="PHP">PHP</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="PHP-GTK" title="PHP-GTK">PHP-GTK</a></li>
<li><a href="WxPHP" title="WxPHP">wxPHP</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Python_(programming_language)" title="Python (programming language)">Python</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Tkinter" title="Tkinter">Tkinter</a></li>
<li><a href="Kivy_(framework)" title="Kivy (framework)">Kivy</a></li>
<li><a href="PySide" title="PySide">PySide</a></li>
<li><a href="PyQt" title="PyQt">PyQt</a></li>
<li><a href="PyGTK" title="PyGTK">PyGTK</a></li>
<li><a href="WxPython" title="WxPython">wxPython</a></li>
<li><a href="Pyjs" title="Pyjs">Pyjs</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Shoes_(GUI_toolkit)" class="mw-redirect" title="Shoes (GUI toolkit)">Shoes</a></li>
<li><a href="QtRuby" class="mw-redirect" title="QtRuby">QtRuby</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Tcl" title="Tcl">Tcl</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Tk_(software)" title="Tk (software)">Tcl/Tk</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="XML" title="XML">XML</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Glade_Interface_Designer" title="Glade Interface Designer">GladeXML</a></li>
<li><a href="Lively_Kernel" title="Lively Kernel">Lively Kernel</a></li>
<li><a href="Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a></li>
<li><a href="XUL" title="XUL">XUL</a></li>
<li><a href="Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Unix_shell" title="Unix shell">shell</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Newt_(programming_library)" title="Newt (programming library)">Newt</a></li>
<li><a href="CDK_(programming_library)" title="CDK (programming library)">CDK</a></li>
<li><a href="Dialog_(software)" title="Dialog (software)">Dialog</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dart_(programming_language)" title="Dart (programming language)">Dart</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Flutter_(software)" title="Flutter (software)">Flutter</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-03-25" href="https://en.wikipedia.org/wiki/?title=Cocoa_(API)&oldid=1282327141">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>